package com.comment;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CommentResult<T> {
    //返回信息  成功
    private String message;
    // 数据
    private T  data;
    //返回响应 state （401值有问题）（200）（400） （404 找不到） （500 代码大量错误）
    private Integer state;


    /**
     * 相应成功的响应体
     *
     * @param data 要相应的数据
     * @param <T>  数据类型
     * @return 相应体
     */
    public static <T> CommentResult<T> success(T data) {
        CommentResult<T> response = new CommentResult<>();
        response.state = 200;
        response.message = "响应成功";
        response.data = data;
        return response;
    }


    /**
     * 相应信息
     *
     * @return 没有相应数据的相应体
     */
    public static CommentResult<Void> success() {
        CommentResult<Void> response = new CommentResult<>();
        response.state = 200;
        response.message = "请求成功";
        return response;
    }

    /**
     * 返回异常
     * @param status 状态码
     * @param message 信息
     * @return 失败响应
     */
    public static CommentResult<Void> error(Integer status, String message) {
        CommentResult<Void> response = new CommentResult<>();
        response.state = status;
        response.message = message;
        return response;
    }

}
